package com.example.jdbc;

import java.sql.*;
import java.util.Objects;

/**
 * JDBC 编程六步：
 * 1. 注册驱动（作用：告诉Java程序，即将要连接的是哪个品牌的数据库)
 * 2. 获取连接（表示JVM的进程和数据库进程之间的通道打开了）
 * 3. 获取数据库操作对象（专门执行SQL语句的对象）
 * 4. 执行SQL语句
 * 5. 处理查询结果
 * 6. 释放资源
 */
public class Demo2 {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        try {
            // 注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 获取连接
            connection = DriverManager.getConnection("jdbc:mysql://192.168.31.92:3306/test", "root", "123456");
            // 获取数据库操作对象
            statement = connection.createStatement();
            // 执行SQL
            rs = statement.executeQuery("select 1 from dual");
            // 处理查询结果
            //System.out.println(resultSet.getString("name"));
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } finally { // 释放资源
            if (Objects.nonNull(rs)) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if (Objects.nonNull(statement)) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if (Objects.nonNull(connection)) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }
}
